Enhanced Parallelization via Analyses and Transformations on Array SSA Form

نویسندگان

  • Kathleen Knobe
  • Vivek Sarkar
چکیده

Array SSA form is a version of SSA form that captures precise element-level data flow information for array variables. As an example of program analysis using Array SSA form, we presented a conditional constant propagation algorithm that can lead to discovery of a larger set of constants than previous algorithms that analyze only scalar variables [7]. As an example of program transformation using Array SSA form, we showed that making its elementlevel functions manifest at run-time can increase the set of parallelizable loops [6]. In this paper, we extend our past work by showing how Array SSA form can be used to perform analyses and transformations that go beyond loop parallelization. These transformations (which include region/task parallelism, pipeline parallelism, speculation, and general forms of code reordering) rely on two important properties of Array SSA form. First, because the operation is truly functional in Array SSA form, it can be subjected to classical optimizations and transformations (e.g., copy propagation, reassociation, code reordering) like other operations. Second, Array SSA form, like scalar SSA form, creates a factoring of reaching definitions. However, in the array case this factoring can be refined by using element-level information. Specifically, we present a static analysis technique called resolution that reduces the number of definitions that appear to reach a use. Resolution is global in scope and is distinct from traditional dependence analysis which focuses on array references in loops.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

The Advantages of Instance-Wise Reaching Definition Analyses in Array (S)SA

Several parallelizing or general-purpose compilers have been using intermediate representations based on some form of single-assignment. Extending these representations to arrays has been done in two ways: Array SA, and Array SSA, the extension of the widely-used Static Single Assignment (SSA). We formally deene and compare Array SA and Array SSA, and show that (1) They both need instance-wise ...

متن کامل

Enabling Sparse Constant Propagation of Array Elements via Array SSA Form

We present a new static analysis technique based on Array SSA form [6]. Compared to traditional SSA form, the key enhancement in Array SSA form is that it deals with arrays at the element level instead of as monolithic objects. In addition, Array SSA form improves the φ function used for merging scalar or array variables in traditional SSA form. The computation of a φ function in traditional SS...

متن کامل

Task Static Single Assignment (T-SSA) and Its Use in Safe Program Parallelization (short paper)

The mechanism of copy-on-write is recently used in speculative and deterministic parallel systems. In these systems, copy-on-write happens when a task modifies a variable for the first time. At the program level, the copying is a form of renaming. This paper extends the formalism of static single assignment (SSA) to introduce a program representation called task static single assignment (T-SSA)...

متن کامل

Inter-iteration Scalar Replacement Using Array SSA Form

In this paper, we introduce novel simple and efficient analysis algorithms for scalar replacement and dead store elimination that are built on Array SSA form, a uniform representation for capturing control and data flow properties at the level of array or pointer accesses. We present extensions to the original Array SSA form representation to capture loop-carried data flow information for array...

متن کامل

Unified Analysis of Array and Object References in Strongly Typed Languages

We present a simple, unified approach for the analysis and optimization of object field and array element accesses in strongly typed languages, that works in the presence of object references/pointers. This approach builds on Array SSA form [14], a uniform representation for capturing control and data flow properties at the level of array elements. The techniques presented here extend previous ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009